import request from '@/config/axios'

// 设备驱动 VO
export interface DeviceDriverVO {
  id: number // 主键ID
  deviceId: number // 设备ID
  commPortId: string // 通讯口ID
  driverName: string // 驱动名称
  brand: string // 品牌
  model: string // 型号
  deviceAddress: string // 设备地址
  minCollectTime: string // 最小采集时间(ms)
  commWaitTime: string // 通讯等待时间(ms)'
  int16AddressRange: string // 16位整型
   int3264AddressRan: string // 32/64位整型
  float3264AddressRange: string // 32/64位浮点型
  stringByteOrder: string // 字符串字节序
  stringEncoding: string // 字符串编码
  blockCollectMode: string // 分块采集方式
  codeWrite: string // 4区16位写功能码
  commIntervalTime: Date // 通讯间隔时间(ms)'
  description: string // 描述
}

// 设备驱动 API
export const DeviceDriverApi = {
  // 查询设备驱动分页
  getDeviceDriverPage: async (params: any) => {
    return await request.get({ url: `/mqtt/device-driver/page`, params })
  },

  // 查询设备驱动详情
  getDeviceDriver: async (id: number) => {
    return await request.get({ url: `/mqtt/device-driver/get?id=` + id })
  },

  // 新增设备驱动
  createDeviceDriver: async (data: DeviceDriverVO) => {
    return await request.post({ url: `/mqtt/device-driver/create`, data })
  },

  // 修改设备驱动
  updateDeviceDriver: async (data: DeviceDriverVO) => {
    return await request.put({ url: `/mqtt/device-driver/update`, data })
  },

  // 删除设备驱动
  deleteDeviceDriver: async (id: number) => {
    return await request.delete({ url: `/mqtt/device-driver/delete?id=` + id })
  },

  // 导出设备驱动 Excel
  exportDeviceDriver: async (params) => {
    return await request.download({ url: `/mqtt/device-driver/export-excel`, params })
  },
}